package com.bytes32.stats;
/**
 * set configuration
 * for epsilon and delta
 * 
 * outputs the number of buffers b
 * and the size of the buffers k
 * 
 *  from the most imprecise to 
 * @author murariuf
 *
 */
public enum Config {
	/** max 90 */
	_01(0.1f,0.001f,3,90),
	/** max 97 */
	_02(0.1f,0.0001f,3,97),
	/** max 102 */
	_03(0.1f,0.00001f,3,102),
	/** max 216 */
	_04(0.05f,0.001f,3,216),
	/** max 231 */
	_05(0.05f,0.0001f,3,231),
	/** max 181 */
	_06(0.05f,0.00001f,4,181),
	/** max 1140 */
	_07(0.01f,0.001f,4,1140),
	/** max 958 */
	_08(0.01f,0.0001f,5,958),
	/** max 991 */
	_09(0.01f,0.00001f,5,991),
	/** max 2060 */
	_10(0.005f,0.001f,5,2060),
	/** max 2153 */
	_11(0.005f,0.0001f,5,2153),
	/** max 2232 */
	_12(0.005f,0.0001f,5,2232),
	/** max 11109 */
	_13(0.001f,0.001f,6,11109),
	/** max 11539 */
	_14(0.001f,0.0001f,6,11539),
	/** max 11914 */
	_15(0.001f,0.00001f,6,11914);
	
	/*
	 * Delta (1-d) probability of quantile
	 */
	private final float d;
	
	/*
	 * Error
	 */
	private final float e;
	/*
	 * Number of buffers
	 */
	private final int b;
	
	/*
	 * Size of each buffer
	 */
	private final int k; 
	
	/*
	 * Constructor
	 */
	private Config(final float e,final float d, final int b, final int k) {
		this.d = d;
		this.e = e;
		this.b = b;
		this.k = k;
	}

	public float getD() {
		return d;
	}

	public float getE() {
		return e;
	}

	public int getB() {
		return b;
	}

	public int getK() {
		return k;
	}
}
